#!/usr/bin/env bash
debug=0
values=2

saida1="+20%	120
100%	100
-20%	80

20%	20"

saida2="+2,5%	102,50
100%	100,00
-2,5%	97,50

2,5%	2,50"

saida3="+25%	1543209,86
100%	1234567,89
-25%	925925,92

25%	308641,97"

saida4="+1%	1,01
100%	1,00
-1%	0,99

1%	0,01"

saida5="200%	1000
150%	750
125%	625
100%	500
90%	450
80%	400
75%	375
70%	350
60%	300
50%	250
40%	200
30%	150
25%	125
20%	100
15%	75
10%	50
9%	45
8%	40
7%	35
6%	30
5%	25
4%	20
3%	15
2%	10
1%	5"

tests=(
''	''	r	^Uso:.*
100	-1	r	"Número inválido '-1'"
-1	100	t	"Número inválido '-1'"
100	+1	t	"Número inválido '+1'"
+1	100	t	"Número inválido '+1'"
100	X	t	"Número inválido 'X'"
X	100	t	"Número inválido 'X'"

1	.5%	r	'O valor da porcentagem deve ser um n.*mero. Exemplos: 2 ou 2,5.'
1	-5%	r	'O valor da porcentagem deve ser um n.*mero. Exemplos: 2 ou 2,5.'
1	+5%	r	'O valor da porcentagem deve ser um n.*mero. Exemplos: 2 ou 2,5.'
1	-1,5%	r	'O valor da porcentagem deve ser um n.*mero. Exemplos: 2 ou 2,5.'
1	+1,5%	r	'O valor da porcentagem deve ser um n.*mero. Exemplos: 2 ou 2,5.'
1	X%	r	'O valor da porcentagem deve ser um n.*mero. Exemplos: 2 ou 2,5.'

### valor1 valor2
# inteiros
100	0	t	"0%"  # 0,00% ?
100	1	t	"1,00%"
100	10	t	"10,00%"
100	50	t	"50,00%"
100	100	t	"100,00%"
100	200	t	"200,00%"
100	1000	t	"1000,00%"
# float
100,0	10	t	"10,00%"
100,00	10	t	"10,00%"
100,000	10	t	"10,00%"
100	10,0	t	"10,00%"
100	10,00	t	"10,00%"
100	10,000	t	"10,00%"
100,0	10,0	t	"10,00%"
100,00	10,00	t	"10,00%"
100,000	10,000	t	"10,00%"
# float com ponto
100.0	10	t	"10.00%"
100.00	10	t	"10.00%"
100.000	10	t	"10.00%"
100	10.0	t	"10.00%"
100	10.00	t	"10.00%"
100	10.000	t	"10.00%"
100.0	10.0	t	"10.00%"
100.00	10.00	t	"10.00%"
100.000	10.000	t	"10.00%"
# float/float o segundo separador ganha
100.0	10,0	t	"10,00%"
100,0	10.0	t	"10.00%"
# dinheiro
1.000,00	100		t	"10,00%"
10000		1.000,00	t	"10,00%"
10.000,00	1.000,00	t	"10,00%"
100.000,00	10.000,00	t	"10,00%"
1.000.000,00	100.000,00	t	"10,00%"
10.000.000,00	1.000.000,00	t	"10,00%"
100.000.000,00	10.000.000,00	t	"10,00%"

### valor1 porcentagem
# inteiro
100		20%	t	"$saida1"
# primeiro inteiro e % float: escala=2 e vírgula
100		2.5%	t	"$saida2"
100		2,5%	t	"$saida2"
# escala e vírgula do primeiro
100,00		2.5%	t	"$saida2"
100,00		2,5%	t	"$saida2"
# dinheiro com pontos
1.234.567,89	25%	t	"$saida3"
# adição do zero em caso de resultado .123
1,00		1%	t	"$saida4"

### valor1
500		''	t	"$saida5"
500.00		''	r	"^200%	1000.00$"
500.000		''	r	"^200%	1000.000$"
500.0000	''	r	"^200%	1000.0000$"
500,00		''	r	"^200%	1000,00$"
500,000		''	r	"^200%	1000,000$"
500,0000	''	r	"^200%	1000,0000$"
1.234.567,89	''	r	"^200%	2469135,78$"
)
. _lib
